package com.zlsy.learning.leetcode.queue.q239;

/**
 * @author zhouliang
 * @date 2020/8/18 8:26
 */
public class MaxSlidingWindow {
  public static int[] maxSlidingWindow(int[] nums, int k) {
    int n = nums.length;
    // 如果nums或则k其中一个长度为0那么就返回int[0]
    if (n * k == 0) {
      return new int[0];
    }
    // n长的数组每K个朝后移动一次，那么得出的新数组大小为：n-k+1
    int[] output = new int[n - k + 1];
    for (int i = 0; i < output.length; i++) {
      int max = Integer.MIN_VALUE;
      //比如第一个数是从0-3找出最大值，i控制右移位置，j控制这一次里面几个数找最大。
      for (int j = i; j < i + k; j++) {
          //一个数一个数比较
        max = Math.max(max, nums[j]);
        output[i] = max;
      }
    }
    return output;
  }
}
